package PTA_JAVA.JavaB.Javademo27;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s;
        while(!"!!!!!".equals(s=sc.nextLine())){
    //调用getRadius方法将每一行数据转化为半径数组，其中按空格进行数据的分割，
    // 其中如果输入的是空行则抛出NullPointerException异常，否则则进行相应的数据转换。
    // 若发生异常则输出异常信息(toString()方法)，
    // 接着使用getFiveArea()方法得到并输出转换完成后的数组中的第五个数据对应的圆形面积，如果数组长度小于5，
    // 则抛出IndexOutOfBoundsException异常，如果数组的第五个数据小于等于0，则抛出RuntimeException异常
            double[] d = getRadius(s);
            double area = getFiveArea(d);
            System.out.println(area);
        }
    }
    static double[] getRadius(String line){
        //将一行数据转换为一个半径数组
        try{
            if(line.matches("\\s+|(?s)")){
                throw new NullPointerException();
            }else{
                try{
                    String[] s = line.split("\\s+");
                    ArrayList<Double> list = new ArrayList<>();
                    for (int i = 0; i < s.length; i++) {
                        try{
                            list.add(Double.parseDouble(s[i]));
                        }catch(NumberFormatException e){
                            System.out.println(e);
                            list.add((double) -1);
                        }
                    }
                    double[] d = list.stream().mapToDouble(i->i).toArray();;
                    return d;
                }catch(Exception e){
                    System.out.println(e);
                }
            }
        }catch(NullPointerException e){
            System.out.println(e);
        }
        return new double[0];
    }
    static double getFiveArea(double[] circles){
        //及求半径数组中第五个数据对应的圆形的面积
        //（π的值使用Math类中的PI，平方计算使用Math中的pow()方法）。
        try{
            if(circles.length<5){
                throw new ArrayIndexOutOfBoundsException();
            }else{
                try{
                    if(circles[4]<0){
                        throw new RuntimeException();
                    }else{
                        return Math.pow(circles[4],2)*Math.PI;
                    }
                }catch(RuntimeException e){
                    System.out.println(e);
                }
            }
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println(e+": 4");
        }
        return 0;
    }
}
